# 加盐（Salt）哈希（用于密码存储）

import hashlib
import os

def hash_password(password, salt=None, algorithm='sha256'):
    """
    为密码生成加盐哈希
    :param password: 明文密码
    :param salt: 盐值（可选，默认随机生成）
    :param algorithm: 哈希算法
    :return: (盐, 哈希值)
    """
    if salt is None:
        '''使用os.urandom()生成加密安全的随机盐'''
        salt = os.urandom(16)  # 生成16字节随机盐
    
    # 将密码和盐组合
    salted_password = password.encode('utf-8') + salt
    
    # 计算哈希
    hasher = hashlib.new(algorithm)
    hasher.update(salted_password)
    hashed = hasher.hexdigest()
    
    return salt.hex(), hashed

# 测试密码哈希
salt, hashed_pwd = hash_password("my_secure_password")
print("Salt:", salt)
print("Hashed Password:", hashed_pwd)
